home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / TCL1 / CNUMBERE / README < prev   
Text File  |  1991-07-04  |  3KB  |  55 lines

  1. The Class CNumberEditor    is something I hacked last night.  I needed to
  2. input numbers (both double and long); but I didn't want to make a dialog
  3. box for everything.  So CNumberEditor was born.  It's an extension to the 
  4. Think Class Library that's based on the class CPane. The Initialization method
  5. has the interface:
  6.  
  7. void        INumberEditor(CView *anEnclosure, CBureaucrat *aSupervisor,
  8.                                         Str255 aFontName, int aFontSize,
  9.                                         Rect    *itsRect, short sigDigs, long    setComm);
  10.  
  11. ÑSince this class uses styled TextEdit, each instance of CNumberEditor has
  12. its own font name, and font size.  If you pass 0 for aFontSize, the font 
  13. will be scaled to fit the box (w/out TrueType, this might look bad).
  14. ÑThe argument itsRect is simply a pointer to the rectangle to surround the number editor. 
  15. ÑsigDigs is the number of significant digits to display.  When dealing with
  16. the type double, specify a positive number. sigDigs is irrelevant when dealing
  17. with the type long.  Finally, when dealing with strings, pass a NEGATIVE number
  18. for sigDigs so whenever you pass 0 for aFontSize (scaled fonts) so that the font's
  19. descent can be accounted for.
  20. Ñthe argument setComm is a command number that the editor's supervisor will
  21. recieve whenever the user makes changes (this command is sent to the supervisor
  22. when the user types RETURN or ENTER).  When the supervisor gets this command,
  23. it should get the changed data from the editor by one of three ways:
  24. -if you're dealing with the type double:
  25.             myDouble=theEditor->GetDoubleValue();
  26. -if you're dealing with the type long:
  27.             myLong=theEditor->GetLongValue();
  28. -if you're dealing with strings:
  29.             theEditor->GetString(myString255);
  30.  
  31. ÑAfter you initialize theEditor, you might want to install the initial data. This is
  32. pretty straight forward:
  33. -if you're dealing with the type double:
  34.             theEditor->SetDoubleValue(myDouble);
  35. -if you're dealing with the type long:
  36.         theEditor->GetLongValue(myLong);
  37. -if you're dealing with strings:
  38.             theEditor->SetString(myString255);
  39.  
  40. When there are several of these things in a single pane, a particular one is 
  41. highlighted by passing the cursor into its box.  Now type in the new data and 
  42. press RETURN or ENTER.
  43.  
  44. An example of this is in the file CTestPane, a subclass of CStarterPane.  To try it
  45. out, simply open up the Starter.╣ project and make a few changes:
  46. Ñ#include "CTestPane.h"  in the file CStarterDoc.c
  47. Ñchange theMainPane = new(CStarterPane);
  48. to    theMainPane = new(CTestPane);
  49. in the method BuildWindow.
  50. ÑAdd the SANE library! (necessary).
  51.  
  52. CNumberEditor should work with the 68881 option on or off (12 byte doubles or not).
  53.  
  54. Since I hacked this together in one night and rushed it off, I'm sure there will
  55. be bugs.  This is only meant to be an act of goodwill to people on the net who have been posting about the need for an increase in the volume of public domain objects.  I'm all for it.  If you fix/improve this class please send me a copy of the changes at:  jsorenso@thesis1.med.uth.tmc.edu